<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.9.1"/>
<meta name="viewport" content="width=device-width, initial-scale=1"/>
<title>Doxygen: pcl::filters::Convolution&lt; PointIn, PointOut &gt; 模板类 参考</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
<link href="navtree.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="resize.js"></script>
<script type="text/javascript" src="navtreedata.js"></script>
<script type="text/javascript" src="navtree.js"></script>
<link href="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="search/searchdata.js"></script>
<script type="text/javascript" src="search/search.js"></script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
</head>
<body>
<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
<div id="titlearea">
<table cellspacing="0" cellpadding="0">
 <tbody>
 <tr style="height: 56px;">
  <td id="projectalign" style="padding-left: 0.5em;">
   <div id="projectname">Doxygen
   </div>
  </td>
 </tr>
 </tbody>
</table>
</div>
<!-- end header part -->
<!-- 制作者 Doxygen 1.9.1 -->
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
var searchBox = new SearchBox("searchBox", "search",false,'搜索','.html');
/* @license-end */
</script>
<script type="text/javascript" src="menudata.js"></script>
<script type="text/javascript" src="menu.js"></script>
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
$(function() {
  initMenu('',true,false,'search.php','搜索');
  $(document).ready(function() { init_search(); });
});
/* @license-end */</script>
<div id="main-nav"></div>
</div><!-- top -->
<div id="side-nav" class="ui-resizable side-nav-resizable">
  <div id="nav-tree">
    <div id="nav-tree-contents">
      <div id="nav-sync" class="sync"></div>
    </div>
  </div>
  <div id="splitbar" style="-moz-user-select:none;" 
       class="ui-resizable-handle">
  </div>
</div>
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
$(document).ready(function(){initNavTree('classpcl_1_1filters_1_1_convolution.html',''); initResizable(); });
/* @license-end */
</script>
<div id="doc-content">
<!-- window showing the filter options -->
<div id="MSearchSelectWindow"
     onmouseover="return searchBox.OnSearchSelectShow()"
     onmouseout="return searchBox.OnSearchSelectHide()"
     onkeydown="return searchBox.OnSearchSelectKey(event)">
</div>

<!-- iframe showing the search results (closed by default) -->
<div id="MSearchResultsWindow">
<iframe src="javascript:void(0)" frameborder="0" 
        name="MSearchResults" id="MSearchResults">
</iframe>
</div>

<div class="header">
  <div class="summary">
<a href="#pub-types">Public 类型</a> &#124;
<a href="#pub-methods">Public 成员函数</a> &#124;
<a href="#pro-methods">Protected 成员函数</a> &#124;
<a href="#pro-attribs">Protected 属性</a> &#124;
<a href="#pri-methods">Private 成员函数</a> &#124;
<a href="#pri-attribs">Private 属性</a> &#124;
<a href="classpcl_1_1filters_1_1_convolution-members.html">所有成员列表</a>  </div>
  <div class="headertitle">
<div class="title">pcl::filters::Convolution&lt; PointIn, PointOut &gt; 模板类 参考</div>  </div>
</div><!--header-->
<div class="contents">

<p><code>#include &lt;<a class="el" href="filters_2include_2pcl_2filters_2convolution_8h_source.html">convolution.h</a>&gt;</code></p>
<table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pub-types"></a>
Public 类型</h2></td></tr>
<tr class="memitem:ae9da4579c89dba3c56e860c8e6b96d9f"><td class="memItemLeft" align="right" valign="top"><a id="ae9da4579c89dba3c56e860c8e6b96d9f"></a>enum &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classpcl_1_1filters_1_1_convolution.html#ae9da4579c89dba3c56e860c8e6b96d9f">BORDERS_POLICY</a> { <b>BORDERS_POLICY_IGNORE</b> = -1
, <b>BORDERS_POLICY_MIRROR</b> = 0
, <b>BORDERS_POLICY_DUPLICATE</b> = 1
 }</td></tr>
<tr class="memdesc:ae9da4579c89dba3c56e860c8e6b96d9f"><td class="mdescLeft">&#160;</td><td class="mdescRight">The borders policy available <br /></td></tr>
<tr class="separator:ae9da4579c89dba3c56e860c8e6b96d9f"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a5e9d619066750316beb2709d9c0d7645"><td class="memItemLeft" align="right" valign="top"><a id="a5e9d619066750316beb2709d9c0d7645"></a>
typedef <a class="el" href="classpcl_1_1_point_cloud.html">pcl::PointCloud</a>&lt; PointIn &gt;&#160;</td><td class="memItemRight" valign="bottom"><b>PointCloudIn</b></td></tr>
<tr class="separator:a5e9d619066750316beb2709d9c0d7645"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a9a83ad2759e74adbd2db2fba1800f1c6"><td class="memItemLeft" align="right" valign="top"><a id="a9a83ad2759e74adbd2db2fba1800f1c6"></a>
typedef PointCloudIn::Ptr&#160;</td><td class="memItemRight" valign="bottom"><b>PointCloudInPtr</b></td></tr>
<tr class="separator:a9a83ad2759e74adbd2db2fba1800f1c6"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a94de97eb74fba1ee20c3658ac4ea4cec"><td class="memItemLeft" align="right" valign="top"><a id="a94de97eb74fba1ee20c3658ac4ea4cec"></a>
typedef PointCloudIn::ConstPtr&#160;</td><td class="memItemRight" valign="bottom"><b>PointCloudInConstPtr</b></td></tr>
<tr class="separator:a94de97eb74fba1ee20c3658ac4ea4cec"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a2fbb2bd7574402f3f73057652f720a07"><td class="memItemLeft" align="right" valign="top"><a id="a2fbb2bd7574402f3f73057652f720a07"></a>
typedef <a class="el" href="classpcl_1_1_point_cloud.html">pcl::PointCloud</a>&lt; PointOut &gt;&#160;</td><td class="memItemRight" valign="bottom"><b>PointCloudOut</b></td></tr>
<tr class="separator:a2fbb2bd7574402f3f73057652f720a07"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a0a57817ecc2760e9ffb660b4bbfe4042"><td class="memItemLeft" align="right" valign="top"><a id="a0a57817ecc2760e9ffb660b4bbfe4042"></a>
typedef boost::shared_ptr&lt; <a class="el" href="classpcl_1_1filters_1_1_convolution.html">Convolution</a>&lt; PointIn, PointOut &gt; &gt;&#160;</td><td class="memItemRight" valign="bottom"><b>Ptr</b></td></tr>
<tr class="separator:a0a57817ecc2760e9ffb660b4bbfe4042"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a77fcdca3b7a962b5a60405e24c4efadf"><td class="memItemLeft" align="right" valign="top"><a id="a77fcdca3b7a962b5a60405e24c4efadf"></a>
typedef boost::shared_ptr&lt; const <a class="el" href="classpcl_1_1filters_1_1_convolution.html">Convolution</a>&lt; PointIn, PointOut &gt; &gt;&#160;</td><td class="memItemRight" valign="bottom"><b>ConstPtr</b></td></tr>
<tr class="separator:a77fcdca3b7a962b5a60405e24c4efadf"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pub-methods"></a>
Public 成员函数</h2></td></tr>
<tr class="memitem:a14b0365f33721dae85cef7246bfcf539"><td class="memItemLeft" align="right" valign="top"><a id="a14b0365f33721dae85cef7246bfcf539"></a>
&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classpcl_1_1filters_1_1_convolution.html#a14b0365f33721dae85cef7246bfcf539">Convolution</a> ()</td></tr>
<tr class="memdesc:a14b0365f33721dae85cef7246bfcf539"><td class="mdescLeft">&#160;</td><td class="mdescRight">Constructor <br /></td></tr>
<tr class="separator:a14b0365f33721dae85cef7246bfcf539"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a10210b349ac1dec4fe217712980b588b"><td class="memItemLeft" align="right" valign="top"><a id="a10210b349ac1dec4fe217712980b588b"></a>
&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classpcl_1_1filters_1_1_convolution.html#a10210b349ac1dec4fe217712980b588b">~Convolution</a> ()</td></tr>
<tr class="memdesc:a10210b349ac1dec4fe217712980b588b"><td class="mdescLeft">&#160;</td><td class="mdescRight">Empty destructor <br /></td></tr>
<tr class="separator:a10210b349ac1dec4fe217712980b588b"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a16fbbdf38948fed054d2b8b6514ef42d"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classpcl_1_1filters_1_1_convolution.html#a16fbbdf38948fed054d2b8b6514ef42d">setInputCloud</a> (const PointCloudInConstPtr &amp;cloud)</td></tr>
<tr class="memdesc:a16fbbdf38948fed054d2b8b6514ef42d"><td class="mdescLeft">&#160;</td><td class="mdescRight">Provide a pointer to the input dataset  <a href="classpcl_1_1filters_1_1_convolution.html#a16fbbdf38948fed054d2b8b6514ef42d">更多...</a><br /></td></tr>
<tr class="separator:a16fbbdf38948fed054d2b8b6514ef42d"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:acd355932b0334275e14ee26a248c15c4"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classpcl_1_1filters_1_1_convolution.html#acd355932b0334275e14ee26a248c15c4">setKernel</a> (const Eigen::ArrayXf &amp;<a class="el" href="classpcl_1_1kernel.html">kernel</a>)</td></tr>
<tr class="separator:acd355932b0334275e14ee26a248c15c4"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ac6c3cc194c0bf3a9e29b6748d3e0b5de"><td class="memItemLeft" align="right" valign="top"><a id="ac6c3cc194c0bf3a9e29b6748d3e0b5de"></a>
void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classpcl_1_1filters_1_1_convolution.html#ac6c3cc194c0bf3a9e29b6748d3e0b5de">setBordersPolicy</a> (int policy)</td></tr>
<tr class="memdesc:ac6c3cc194c0bf3a9e29b6748d3e0b5de"><td class="mdescLeft">&#160;</td><td class="mdescRight">Set the borders policy <br /></td></tr>
<tr class="separator:ac6c3cc194c0bf3a9e29b6748d3e0b5de"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a537d5529df268fd120351ff0e24d8244"><td class="memItemLeft" align="right" valign="top"><a id="a537d5529df268fd120351ff0e24d8244"></a>
int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classpcl_1_1filters_1_1_convolution.html#a537d5529df268fd120351ff0e24d8244">getBordersPolicy</a> ()</td></tr>
<tr class="memdesc:a537d5529df268fd120351ff0e24d8244"><td class="mdescLeft">&#160;</td><td class="mdescRight">Get the borders policy <br /></td></tr>
<tr class="separator:a537d5529df268fd120351ff0e24d8244"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aac0496f56b859fb46e39a52bf14ed853"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classpcl_1_1filters_1_1_convolution.html#aac0496f56b859fb46e39a52bf14ed853">setDistanceThreshold</a> (const float &amp;threshold)</td></tr>
<tr class="separator:aac0496f56b859fb46e39a52bf14ed853"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a00cd1ceb0545dd8468fe0e6a37531180"><td class="memItemLeft" align="right" valign="top">const float &amp;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classpcl_1_1filters_1_1_convolution.html#a00cd1ceb0545dd8468fe0e6a37531180">getDistanceThreshold</a> () const</td></tr>
<tr class="separator:a00cd1ceb0545dd8468fe0e6a37531180"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a2836bdcb1bbc026eaa38d4378617de53"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classpcl_1_1filters_1_1_convolution.html#a2836bdcb1bbc026eaa38d4378617de53">setNumberOfThreads</a> (unsigned int nr_threads=0)</td></tr>
<tr class="memdesc:a2836bdcb1bbc026eaa38d4378617de53"><td class="mdescLeft">&#160;</td><td class="mdescRight">Initialize the scheduler and set the number of threads to use.  <a href="classpcl_1_1filters_1_1_convolution.html#a2836bdcb1bbc026eaa38d4378617de53">更多...</a><br /></td></tr>
<tr class="separator:a2836bdcb1bbc026eaa38d4378617de53"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a8700c664ebc38288155d4c872c117c81"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classpcl_1_1filters_1_1_convolution.html#a8700c664ebc38288155d4c872c117c81">convolveRows</a> (<a class="el" href="classpcl_1_1_point_cloud.html">PointCloudOut</a> &amp;output)</td></tr>
<tr class="separator:a8700c664ebc38288155d4c872c117c81"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a12ad33ee524c323fb108142c2736957f"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classpcl_1_1filters_1_1_convolution.html#a12ad33ee524c323fb108142c2736957f">convolveCols</a> (<a class="el" href="classpcl_1_1_point_cloud.html">PointCloudOut</a> &amp;output)</td></tr>
<tr class="separator:a12ad33ee524c323fb108142c2736957f"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aa517e36975cab3ef6dc048552449d1e2"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classpcl_1_1filters_1_1_convolution.html#aa517e36975cab3ef6dc048552449d1e2">convolve</a> (const Eigen::ArrayXf &amp;h_kernel, const Eigen::ArrayXf &amp;v_kernel, <a class="el" href="classpcl_1_1_point_cloud.html">PointCloudOut</a> &amp;output)</td></tr>
<tr class="separator:aa517e36975cab3ef6dc048552449d1e2"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:abe4b8e7eb8d700d72fc673ab496edc3e"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classpcl_1_1filters_1_1_convolution.html#abe4b8e7eb8d700d72fc673ab496edc3e">convolve</a> (<a class="el" href="classpcl_1_1_point_cloud.html">PointCloudOut</a> &amp;output)</td></tr>
<tr class="separator:abe4b8e7eb8d700d72fc673ab496edc3e"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pro-methods"></a>
Protected 成员函数</h2></td></tr>
<tr class="memitem:aa0d05344455a5a9595515b02d5669cd9"><td class="memItemLeft" align="right" valign="top"><a id="aa0d05344455a5a9595515b02d5669cd9"></a>
void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classpcl_1_1filters_1_1_convolution.html#aa0d05344455a5a9595515b02d5669cd9">convolve_rows</a> (<a class="el" href="classpcl_1_1_point_cloud.html">PointCloudOut</a> &amp;output)</td></tr>
<tr class="memdesc:aa0d05344455a5a9595515b02d5669cd9"><td class="mdescLeft">&#160;</td><td class="mdescRight">convolve rows and ignore borders <br /></td></tr>
<tr class="separator:aa0d05344455a5a9595515b02d5669cd9"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a90a14cfd2090f0defaee6a0b261ef697"><td class="memItemLeft" align="right" valign="top"><a id="a90a14cfd2090f0defaee6a0b261ef697"></a>
void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classpcl_1_1filters_1_1_convolution.html#a90a14cfd2090f0defaee6a0b261ef697">convolve_cols</a> (<a class="el" href="classpcl_1_1_point_cloud.html">PointCloudOut</a> &amp;output)</td></tr>
<tr class="memdesc:a90a14cfd2090f0defaee6a0b261ef697"><td class="mdescLeft">&#160;</td><td class="mdescRight">convolve cols and ignore borders <br /></td></tr>
<tr class="separator:a90a14cfd2090f0defaee6a0b261ef697"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a2ef019b0be2516b7935827732936bc96"><td class="memItemLeft" align="right" valign="top"><a id="a2ef019b0be2516b7935827732936bc96"></a>
void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classpcl_1_1filters_1_1_convolution.html#a2ef019b0be2516b7935827732936bc96">convolve_rows_mirror</a> (<a class="el" href="classpcl_1_1_point_cloud.html">PointCloudOut</a> &amp;output)</td></tr>
<tr class="memdesc:a2ef019b0be2516b7935827732936bc96"><td class="mdescLeft">&#160;</td><td class="mdescRight">convolve rows and mirror borders <br /></td></tr>
<tr class="separator:a2ef019b0be2516b7935827732936bc96"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a99fecb92edac3c7a6f7d3a1c03c5223f"><td class="memItemLeft" align="right" valign="top"><a id="a99fecb92edac3c7a6f7d3a1c03c5223f"></a>
void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classpcl_1_1filters_1_1_convolution.html#a99fecb92edac3c7a6f7d3a1c03c5223f">convolve_cols_mirror</a> (<a class="el" href="classpcl_1_1_point_cloud.html">PointCloudOut</a> &amp;output)</td></tr>
<tr class="memdesc:a99fecb92edac3c7a6f7d3a1c03c5223f"><td class="mdescLeft">&#160;</td><td class="mdescRight">convolve cols and mirror borders <br /></td></tr>
<tr class="separator:a99fecb92edac3c7a6f7d3a1c03c5223f"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a800c77925077f233061f5c409cb9cf21"><td class="memItemLeft" align="right" valign="top"><a id="a800c77925077f233061f5c409cb9cf21"></a>
void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classpcl_1_1filters_1_1_convolution.html#a800c77925077f233061f5c409cb9cf21">convolve_rows_duplicate</a> (<a class="el" href="classpcl_1_1_point_cloud.html">PointCloudOut</a> &amp;output)</td></tr>
<tr class="memdesc:a800c77925077f233061f5c409cb9cf21"><td class="mdescLeft">&#160;</td><td class="mdescRight">convolve rows and duplicate borders <br /></td></tr>
<tr class="separator:a800c77925077f233061f5c409cb9cf21"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a5e21016ab2b2fe7ed370834a162c7b40"><td class="memItemLeft" align="right" valign="top"><a id="a5e21016ab2b2fe7ed370834a162c7b40"></a>
void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classpcl_1_1filters_1_1_convolution.html#a5e21016ab2b2fe7ed370834a162c7b40">convolve_cols_duplicate</a> (<a class="el" href="classpcl_1_1_point_cloud.html">PointCloudOut</a> &amp;output)</td></tr>
<tr class="memdesc:a5e21016ab2b2fe7ed370834a162c7b40"><td class="mdescLeft">&#160;</td><td class="mdescRight">convolve cols and duplicate borders <br /></td></tr>
<tr class="separator:a5e21016ab2b2fe7ed370834a162c7b40"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ac6ea4184e4763e573694d01cdf047592"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classpcl_1_1filters_1_1_convolution.html#ac6ea4184e4763e573694d01cdf047592">initCompute</a> (<a class="el" href="classpcl_1_1_point_cloud.html">PointCloudOut</a> &amp;output)</td></tr>
<tr class="separator:ac6ea4184e4763e573694d01cdf047592"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a48626c49bc8797817fbf0d2b5719dc43"><td class="memItemLeft" align="right" valign="top"><a id="a48626c49bc8797817fbf0d2b5719dc43"></a>
void&#160;</td><td class="memItemRight" valign="bottom"><b>makeInfinite</b> (PointOut &amp;p)</td></tr>
<tr class="separator:a48626c49bc8797817fbf0d2b5719dc43"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a782bedb71e3940e57b59ae4b2093c900"><td class="memItemLeft" align="right" valign="top"><a id="a782bedb71e3940e57b59ae4b2093c900"></a>
void&#160;</td><td class="memItemRight" valign="bottom"><b>makeInfinite</b> (<a class="el" href="structpcl_1_1_r_g_b.html">pcl::RGB</a> &amp;p)</td></tr>
<tr class="separator:a782bedb71e3940e57b59ae4b2093c900"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pro-attribs"></a>
Protected 属性</h2></td></tr>
<tr class="memitem:adec8e2fca1a93fab4b558ee2fc9418bd"><td class="memItemLeft" align="right" valign="top"><a id="adec8e2fca1a93fab4b558ee2fc9418bd"></a>
unsigned int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classpcl_1_1filters_1_1_convolution.html#adec8e2fca1a93fab4b558ee2fc9418bd">threads_</a></td></tr>
<tr class="memdesc:adec8e2fca1a93fab4b558ee2fc9418bd"><td class="mdescLeft">&#160;</td><td class="mdescRight">The number of threads the scheduler should use. <br /></td></tr>
<tr class="separator:adec8e2fca1a93fab4b558ee2fc9418bd"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pri-methods"></a>
Private 成员函数</h2></td></tr>
<tr class="memitem:a4b2e50f307ab6760e6593f7ac2ba7e0a"><td class="memItemLeft" align="right" valign="top">PointOut&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classpcl_1_1filters_1_1_convolution.html#a4b2e50f307ab6760e6593f7ac2ba7e0a">convolveOneRowDense</a> (int i, int j)</td></tr>
<tr class="separator:a4b2e50f307ab6760e6593f7ac2ba7e0a"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a45c30c6f115a94ad6a26e57b5e21553b"><td class="memItemLeft" align="right" valign="top">PointOut&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classpcl_1_1filters_1_1_convolution.html#a45c30c6f115a94ad6a26e57b5e21553b">convolveOneColDense</a> (int i, int j)</td></tr>
<tr class="separator:a45c30c6f115a94ad6a26e57b5e21553b"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a1fda861391f0b6ddfdacd9decdd43d55"><td class="memItemLeft" align="right" valign="top">PointOut&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classpcl_1_1filters_1_1_convolution.html#a1fda861391f0b6ddfdacd9decdd43d55">convolveOneRowNonDense</a> (int i, int j)</td></tr>
<tr class="separator:a1fda861391f0b6ddfdacd9decdd43d55"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a60fa76f17ef128a0ed99be9d874d8aa6"><td class="memItemLeft" align="right" valign="top">PointOut&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classpcl_1_1filters_1_1_convolution.html#a60fa76f17ef128a0ed99be9d874d8aa6">convolveOneColNonDense</a> (int i, int j)</td></tr>
<tr class="separator:a60fa76f17ef128a0ed99be9d874d8aa6"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aadd1e9e9f5256e51ea3aec68d9b88c32"><td class="memItemLeft" align="right" valign="top"><a id="aadd1e9e9f5256e51ea3aec68d9b88c32"></a>
<a class="el" href="structpcl_1_1_point_x_y_z_r_g_b.html">pcl::PointXYZRGB</a>&#160;</td><td class="memItemRight" valign="bottom"><b>convolveOneRowDense</b> (int i, int j)</td></tr>
<tr class="separator:aadd1e9e9f5256e51ea3aec68d9b88c32"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a816448edfa16743ed9d0f2803b9eed95"><td class="memItemLeft" align="right" valign="top"><a id="a816448edfa16743ed9d0f2803b9eed95"></a>
<a class="el" href="structpcl_1_1_point_x_y_z_r_g_b.html">pcl::PointXYZRGB</a>&#160;</td><td class="memItemRight" valign="bottom"><b>convolveOneColDense</b> (int i, int j)</td></tr>
<tr class="separator:a816448edfa16743ed9d0f2803b9eed95"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:af900fb2f9b6932eb63fcf28d207f9012"><td class="memItemLeft" align="right" valign="top"><a id="af900fb2f9b6932eb63fcf28d207f9012"></a>
<a class="el" href="structpcl_1_1_point_x_y_z_r_g_b.html">pcl::PointXYZRGB</a>&#160;</td><td class="memItemRight" valign="bottom"><b>convolveOneRowNonDense</b> (int i, int j)</td></tr>
<tr class="separator:af900fb2f9b6932eb63fcf28d207f9012"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a01ef951a84c5f9e98f3f457f1662b9cf"><td class="memItemLeft" align="right" valign="top"><a id="a01ef951a84c5f9e98f3f457f1662b9cf"></a>
<a class="el" href="structpcl_1_1_point_x_y_z_r_g_b.html">pcl::PointXYZRGB</a>&#160;</td><td class="memItemRight" valign="bottom"><b>convolveOneColNonDense</b> (int i, int j)</td></tr>
<tr class="separator:a01ef951a84c5f9e98f3f457f1662b9cf"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a6ba630b56c90e84b9658e9e2d917a9af"><td class="memItemLeft" align="right" valign="top"><a id="a6ba630b56c90e84b9658e9e2d917a9af"></a>
<a class="el" href="structpcl_1_1_r_g_b.html">pcl::RGB</a>&#160;</td><td class="memItemRight" valign="bottom"><b>convolveOneRowDense</b> (int i, int j)</td></tr>
<tr class="separator:a6ba630b56c90e84b9658e9e2d917a9af"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a213ed1d9d4a84d467ce54812ae5299c1"><td class="memItemLeft" align="right" valign="top"><a id="a213ed1d9d4a84d467ce54812ae5299c1"></a>
<a class="el" href="structpcl_1_1_r_g_b.html">pcl::RGB</a>&#160;</td><td class="memItemRight" valign="bottom"><b>convolveOneColDense</b> (int i, int j)</td></tr>
<tr class="separator:a213ed1d9d4a84d467ce54812ae5299c1"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a2356a3542ffa92379d554d602aad4251"><td class="memItemLeft" align="right" valign="top"><a id="a2356a3542ffa92379d554d602aad4251"></a>
<a class="el" href="structpcl_1_1_r_g_b.html">pcl::RGB</a>&#160;</td><td class="memItemRight" valign="bottom"><b>convolveOneRowNonDense</b> (int i, int j)</td></tr>
<tr class="separator:a2356a3542ffa92379d554d602aad4251"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a7cd5ce45e7d5b5f5d627bf79f45da830"><td class="memItemLeft" align="right" valign="top"><a id="a7cd5ce45e7d5b5f5d627bf79f45da830"></a>
<a class="el" href="structpcl_1_1_r_g_b.html">pcl::RGB</a>&#160;</td><td class="memItemRight" valign="bottom"><b>convolveOneColNonDense</b> (int i, int j)</td></tr>
<tr class="separator:a7cd5ce45e7d5b5f5d627bf79f45da830"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pri-attribs"></a>
Private 属性</h2></td></tr>
<tr class="memitem:ad5f85f1f47f680e5c1bce9347c25d3b9"><td class="memItemLeft" align="right" valign="top"><a id="ad5f85f1f47f680e5c1bce9347c25d3b9"></a>
int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classpcl_1_1filters_1_1_convolution.html#ad5f85f1f47f680e5c1bce9347c25d3b9">borders_policy_</a></td></tr>
<tr class="memdesc:ad5f85f1f47f680e5c1bce9347c25d3b9"><td class="mdescLeft">&#160;</td><td class="mdescRight">Border policy <br /></td></tr>
<tr class="separator:ad5f85f1f47f680e5c1bce9347c25d3b9"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a03efcc1b971c1aed960a2f599c879229"><td class="memItemLeft" align="right" valign="top"><a id="a03efcc1b971c1aed960a2f599c879229"></a>
float&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classpcl_1_1filters_1_1_convolution.html#a03efcc1b971c1aed960a2f599c879229">distance_threshold_</a></td></tr>
<tr class="memdesc:a03efcc1b971c1aed960a2f599c879229"><td class="mdescLeft">&#160;</td><td class="mdescRight">Threshold distance between adjacent points <br /></td></tr>
<tr class="separator:a03efcc1b971c1aed960a2f599c879229"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a6c55d5f4243573f3adcadf9a1de6e9c2"><td class="memItemLeft" align="right" valign="top"><a id="a6c55d5f4243573f3adcadf9a1de6e9c2"></a>
PointCloudInConstPtr&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classpcl_1_1filters_1_1_convolution.html#a6c55d5f4243573f3adcadf9a1de6e9c2">input_</a></td></tr>
<tr class="memdesc:a6c55d5f4243573f3adcadf9a1de6e9c2"><td class="mdescLeft">&#160;</td><td class="mdescRight">Pointer to the input cloud <br /></td></tr>
<tr class="separator:a6c55d5f4243573f3adcadf9a1de6e9c2"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:af07d32b376a199ce9ecd43a13aa426af"><td class="memItemLeft" align="right" valign="top"><a id="af07d32b376a199ce9ecd43a13aa426af"></a>
Eigen::ArrayXf&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classpcl_1_1filters_1_1_convolution.html#af07d32b376a199ce9ecd43a13aa426af">kernel_</a></td></tr>
<tr class="memdesc:af07d32b376a199ce9ecd43a13aa426af"><td class="mdescLeft">&#160;</td><td class="mdescRight">convolution kernel <br /></td></tr>
<tr class="separator:af07d32b376a199ce9ecd43a13aa426af"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a56638bab177842b1927fd11a767ea487"><td class="memItemLeft" align="right" valign="top"><a id="a56638bab177842b1927fd11a767ea487"></a>
int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classpcl_1_1filters_1_1_convolution.html#a56638bab177842b1927fd11a767ea487">half_width_</a></td></tr>
<tr class="memdesc:a56638bab177842b1927fd11a767ea487"><td class="mdescLeft">&#160;</td><td class="mdescRight">half kernel size <br /></td></tr>
<tr class="separator:a56638bab177842b1927fd11a767ea487"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a283a901ea233fddc93f014dfe993c405"><td class="memItemLeft" align="right" valign="top"><a id="a283a901ea233fddc93f014dfe993c405"></a>
int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classpcl_1_1filters_1_1_convolution.html#a283a901ea233fddc93f014dfe993c405">kernel_width_</a></td></tr>
<tr class="memdesc:a283a901ea233fddc93f014dfe993c405"><td class="mdescLeft">&#160;</td><td class="mdescRight">kernel size - 1 <br /></td></tr>
<tr class="separator:a283a901ea233fddc93f014dfe993c405"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table>
<a name="details" id="details"></a><h2 class="groupheader">详细描述</h2>
<div class="textblock"><h3>template&lt;typename PointIn, typename PointOut&gt;<br />
class pcl::filters::Convolution&lt; PointIn, PointOut &gt;</h3>

<p><a class="el" href="classpcl_1_1filters_1_1_convolution.html">Convolution</a> is a mathematical operation on two functions f and g, producing a third function that is typically viewed as a modified version of one of the original functions. see <a href="http://en.wikipedia.org/wiki/Convolution">http://en.wikipedia.org/wiki/Convolution</a>.</p>
<p>The class provides rows, column and separate convolving operations of a point cloud. Columns and separate convolution is only allowed on organised point clouds.</p>
<p>When convolving, computing the rows and cols elements at 1/2 kernel width distance from the borders is not defined. We allow for 3 policies:</p><ul>
<li>Ignoring: elements at special locations are filled with zero (default behaviour)</li>
<li>Mirroring: the missing rows or columns are obtained throug mirroring</li>
<li>Duplicating: the missing rows or columns are obtained throug duplicating</li>
</ul>
<dl class="section author"><dt>作者</dt><dd>Nizar Sallem </dd></dl>
</div><h2 class="groupheader">成员函数说明</h2>
<a id="aa517e36975cab3ef6dc048552449d1e2"></a>
<h2 class="memtitle"><span class="permalink"><a href="#aa517e36975cab3ef6dc048552449d1e2">&#9670;&nbsp;</a></span>convolve() <span class="overload">[1/2]</span></h2>

<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;typename PointIn , typename PointOut &gt; </div>
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">void <a class="el" href="classpcl_1_1filters_1_1_convolution.html">pcl::filters::Convolution</a>&lt; PointIn, PointOut &gt;::convolve </td>
          <td>(</td>
          <td class="paramtype">const Eigen::ArrayXf &amp;&#160;</td>
          <td class="paramname"><em>h_kernel</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const Eigen::ArrayXf &amp;&#160;</td>
          <td class="paramname"><em>v_kernel</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="classpcl_1_1_point_cloud.html">PointCloudOut</a> &amp;&#160;</td>
          <td class="paramname"><em>output</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">
<p>Convolve point cloud with an horizontal kernel along rows then vertical kernel along columns : convolve separately. </p><dl class="params"><dt>参数</dt><dd>
  <table class="params">
    <tr><td class="paramdir">[in]</td><td class="paramname">h_kernel</td><td>kernel for convolving rows </td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">v_kernel</td><td>kernel for convolving columns </td></tr>
    <tr><td class="paramdir">[out]</td><td class="paramname">output</td><td>the convolved cloud </td></tr>
  </table>
  </dd>
</dl>
<dl class="section note"><dt>注解</dt><dd>if output doesn't fit in input i.e. output.rows () &lt; input.rows () or output.cols () &lt; input.cols () then output is resized to input sizes. </dd></dl>
<div class="fragment"><div class="line"><a name="l00132"></a><span class="lineno">  132</span>&#160;{</div>
<div class="line"><a name="l00133"></a><span class="lineno">  133</span>&#160;  <span class="keywordflow">try</span></div>
<div class="line"><a name="l00134"></a><span class="lineno">  134</span>&#160;  {</div>
<div class="line"><a name="l00135"></a><span class="lineno">  135</span>&#160;    PointCloudInPtr tmp (<span class="keyword">new</span> <a class="code" href="classpcl_1_1_point_cloud.html">PointCloud&lt;PointIn&gt;</a> ());</div>
<div class="line"><a name="l00136"></a><span class="lineno">  136</span>&#160;    <a class="code" href="classpcl_1_1filters_1_1_convolution.html#acd355932b0334275e14ee26a248c15c4">setKernel</a> (h_kernel);</div>
<div class="line"><a name="l00137"></a><span class="lineno">  137</span>&#160;    <a class="code" href="classpcl_1_1filters_1_1_convolution.html#a8700c664ebc38288155d4c872c117c81">convolveRows</a> (*tmp);</div>
<div class="line"><a name="l00138"></a><span class="lineno">  138</span>&#160;    <a class="code" href="classpcl_1_1filters_1_1_convolution.html#a16fbbdf38948fed054d2b8b6514ef42d">setInputCloud</a> (tmp);</div>
<div class="line"><a name="l00139"></a><span class="lineno">  139</span>&#160;    <a class="code" href="classpcl_1_1filters_1_1_convolution.html#acd355932b0334275e14ee26a248c15c4">setKernel</a> (v_kernel);</div>
<div class="line"><a name="l00140"></a><span class="lineno">  140</span>&#160;    <a class="code" href="classpcl_1_1filters_1_1_convolution.html#a12ad33ee524c323fb108142c2736957f">convolveCols</a> (output);</div>
<div class="line"><a name="l00141"></a><span class="lineno">  141</span>&#160;  }</div>
<div class="line"><a name="l00142"></a><span class="lineno">  142</span>&#160;  <span class="keywordflow">catch</span> (InitFailedException&amp; e)</div>
<div class="line"><a name="l00143"></a><span class="lineno">  143</span>&#160;  {</div>
<div class="line"><a name="l00144"></a><span class="lineno">  144</span>&#160;    PCL_THROW_EXCEPTION (InitFailedException,</div>
<div class="line"><a name="l00145"></a><span class="lineno">  145</span>&#160;                         <span class="stringliteral">&quot;[pcl::filters::Convolution::convolve] init failed &quot;</span> &lt;&lt; e.what ());</div>
<div class="line"><a name="l00146"></a><span class="lineno">  146</span>&#160;  }</div>
<div class="line"><a name="l00147"></a><span class="lineno">  147</span>&#160;}</div>
<div class="ttc" id="aclasspcl_1_1_point_cloud_html"><div class="ttname"><a href="classpcl_1_1_point_cloud.html">pcl::PointCloud</a></div><div class="ttdoc">PointCloud represents the base class in PCL for storing collections of 3D points.</div><div class="ttdef"><b>Definition:</b> point_cloud.h:173</div></div>
<div class="ttc" id="aclasspcl_1_1filters_1_1_convolution_html_a12ad33ee524c323fb108142c2736957f"><div class="ttname"><a href="classpcl_1_1filters_1_1_convolution.html#a12ad33ee524c323fb108142c2736957f">pcl::filters::Convolution::convolveCols</a></div><div class="ttdeci">void convolveCols(PointCloudOut &amp;output)</div><div class="ttdef"><b>Definition:</b> convolution.hpp:109</div></div>
<div class="ttc" id="aclasspcl_1_1filters_1_1_convolution_html_a16fbbdf38948fed054d2b8b6514ef42d"><div class="ttname"><a href="classpcl_1_1filters_1_1_convolution.html#a16fbbdf38948fed054d2b8b6514ef42d">pcl::filters::Convolution::setInputCloud</a></div><div class="ttdeci">void setInputCloud(const PointCloudInConstPtr &amp;cloud)</div><div class="ttdoc">Provide a pointer to the input dataset</div><div class="ttdef"><b>Definition:</b> convolution.h:104</div></div>
<div class="ttc" id="aclasspcl_1_1filters_1_1_convolution_html_a8700c664ebc38288155d4c872c117c81"><div class="ttname"><a href="classpcl_1_1filters_1_1_convolution.html#a8700c664ebc38288155d4c872c117c81">pcl::filters::Convolution::convolveRows</a></div><div class="ttdeci">void convolveRows(PointCloudOut &amp;output)</div><div class="ttdef"><b>Definition:</b> convolution.hpp:89</div></div>
<div class="ttc" id="aclasspcl_1_1filters_1_1_convolution_html_acd355932b0334275e14ee26a248c15c4"><div class="ttname"><a href="classpcl_1_1filters_1_1_convolution.html#acd355932b0334275e14ee26a248c15c4">pcl::filters::Convolution::setKernel</a></div><div class="ttdeci">void setKernel(const Eigen::ArrayXf &amp;kernel)</div><div class="ttdef"><b>Definition:</b> convolution.h:109</div></div>
</div><!-- fragment -->
</div>
</div>
<a id="abe4b8e7eb8d700d72fc673ab496edc3e"></a>
<h2 class="memtitle"><span class="permalink"><a href="#abe4b8e7eb8d700d72fc673ab496edc3e">&#9670;&nbsp;</a></span>convolve() <span class="overload">[2/2]</span></h2>

<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;typename PointIn , typename PointOut &gt; </div>
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">void <a class="el" href="classpcl_1_1filters_1_1_convolution.html">pcl::filters::Convolution</a>&lt; PointIn, PointOut &gt;::convolve </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="classpcl_1_1_point_cloud.html">PointCloudOut</a> &amp;&#160;</td>
          <td class="paramname"><em>output</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">
<p>Convolve point cloud with same kernel along rows and columns separately. </p><dl class="params"><dt>参数</dt><dd>
  <table class="params">
    <tr><td class="paramdir">[out]</td><td class="paramname">output</td><td>the convolved cloud </td></tr>
  </table>
  </dd>
</dl>
<dl class="section note"><dt>注解</dt><dd>if output doesn't fit in input i.e. output.rows () &lt; input.rows () or output.cols () &lt; input.cols () then output is resized to input sizes. </dd></dl>
<div class="fragment"><div class="line"><a name="l00151"></a><span class="lineno">  151</span>&#160;{</div>
<div class="line"><a name="l00152"></a><span class="lineno">  152</span>&#160;  <span class="keywordflow">try</span></div>
<div class="line"><a name="l00153"></a><span class="lineno">  153</span>&#160;  {</div>
<div class="line"><a name="l00154"></a><span class="lineno">  154</span>&#160;    PointCloudInPtr tmp (<span class="keyword">new</span> <a class="code" href="classpcl_1_1_point_cloud.html">PointCloud&lt;PointIn&gt;</a> ());</div>
<div class="line"><a name="l00155"></a><span class="lineno">  155</span>&#160;    <a class="code" href="classpcl_1_1filters_1_1_convolution.html#a8700c664ebc38288155d4c872c117c81">convolveRows</a> (*tmp);</div>
<div class="line"><a name="l00156"></a><span class="lineno">  156</span>&#160;    <a class="code" href="classpcl_1_1filters_1_1_convolution.html#a16fbbdf38948fed054d2b8b6514ef42d">setInputCloud</a> (tmp);</div>
<div class="line"><a name="l00157"></a><span class="lineno">  157</span>&#160;    <a class="code" href="classpcl_1_1filters_1_1_convolution.html#a12ad33ee524c323fb108142c2736957f">convolveCols</a> (output);</div>
<div class="line"><a name="l00158"></a><span class="lineno">  158</span>&#160;  }</div>
<div class="line"><a name="l00159"></a><span class="lineno">  159</span>&#160;  <span class="keywordflow">catch</span> (InitFailedException&amp; e)</div>
<div class="line"><a name="l00160"></a><span class="lineno">  160</span>&#160;  {</div>
<div class="line"><a name="l00161"></a><span class="lineno">  161</span>&#160;    PCL_THROW_EXCEPTION (InitFailedException,</div>
<div class="line"><a name="l00162"></a><span class="lineno">  162</span>&#160;                         <span class="stringliteral">&quot;[pcl::filters::Convolution::convolve] init failed &quot;</span> &lt;&lt; e.what ());</div>
<div class="line"><a name="l00163"></a><span class="lineno">  163</span>&#160;  }</div>
<div class="line"><a name="l00164"></a><span class="lineno">  164</span>&#160;}</div>
</div><!-- fragment -->
</div>
</div>
<a id="a12ad33ee524c323fb108142c2736957f"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a12ad33ee524c323fb108142c2736957f">&#9670;&nbsp;</a></span>convolveCols()</h2>

<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;typename PointIn , typename PointOut &gt; </div>
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">void <a class="el" href="classpcl_1_1filters_1_1_convolution.html">pcl::filters::Convolution</a>&lt; PointIn, PointOut &gt;::convolveCols </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="classpcl_1_1_point_cloud.html">PointCloudOut</a> &amp;&#160;</td>
          <td class="paramname"><em>output</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">
<p>Convolve a float image columns by a given kernel. </p><dl class="params"><dt>参数</dt><dd>
  <table class="params">
    <tr><td class="paramdir">[out]</td><td class="paramname">output</td><td>the convolved image </td></tr>
  </table>
  </dd>
</dl>
<dl class="section note"><dt>注解</dt><dd>if output doesn't fit in input i.e. output.rows () &lt; input.rows () or output.cols () &lt; input.cols () then output is resized to input sizes. </dd></dl>
<div class="fragment"><div class="line"><a name="l00110"></a><span class="lineno">  110</span>&#160;{</div>
<div class="line"><a name="l00111"></a><span class="lineno">  111</span>&#160;  <span class="keywordflow">try</span></div>
<div class="line"><a name="l00112"></a><span class="lineno">  112</span>&#160;  {</div>
<div class="line"><a name="l00113"></a><span class="lineno">  113</span>&#160;    <a class="code" href="classpcl_1_1filters_1_1_convolution.html#ac6ea4184e4763e573694d01cdf047592">initCompute</a> (output);</div>
<div class="line"><a name="l00114"></a><span class="lineno">  114</span>&#160;    <span class="keywordflow">switch</span> (<a class="code" href="classpcl_1_1filters_1_1_convolution.html#ad5f85f1f47f680e5c1bce9347c25d3b9">borders_policy_</a>)</div>
<div class="line"><a name="l00115"></a><span class="lineno">  115</span>&#160;    {</div>
<div class="line"><a name="l00116"></a><span class="lineno">  116</span>&#160;      <span class="keywordflow">case</span> BORDERS_POLICY_MIRROR : <a class="code" href="classpcl_1_1filters_1_1_convolution.html#a99fecb92edac3c7a6f7d3a1c03c5223f">convolve_cols_mirror</a> (output);</div>
<div class="line"><a name="l00117"></a><span class="lineno">  117</span>&#160;      <span class="keywordflow">case</span> BORDERS_POLICY_DUPLICATE : <a class="code" href="classpcl_1_1filters_1_1_convolution.html#a5e21016ab2b2fe7ed370834a162c7b40">convolve_cols_duplicate</a> (output);</div>
<div class="line"><a name="l00118"></a><span class="lineno">  118</span>&#160;      <span class="keywordflow">case</span> BORDERS_POLICY_IGNORE : <a class="code" href="classpcl_1_1filters_1_1_convolution.html#a90a14cfd2090f0defaee6a0b261ef697">convolve_cols</a> (output);</div>
<div class="line"><a name="l00119"></a><span class="lineno">  119</span>&#160;    }</div>
<div class="line"><a name="l00120"></a><span class="lineno">  120</span>&#160;  }</div>
<div class="line"><a name="l00121"></a><span class="lineno">  121</span>&#160;  <span class="keywordflow">catch</span> (InitFailedException&amp; e)</div>
<div class="line"><a name="l00122"></a><span class="lineno">  122</span>&#160;  {</div>
<div class="line"><a name="l00123"></a><span class="lineno">  123</span>&#160;    PCL_THROW_EXCEPTION (InitFailedException,</div>
<div class="line"><a name="l00124"></a><span class="lineno">  124</span>&#160;                         <span class="stringliteral">&quot;[pcl::filters::Convolution::convolveCols] init failed &quot;</span> &lt;&lt; e.what ());</div>
<div class="line"><a name="l00125"></a><span class="lineno">  125</span>&#160;  }</div>
<div class="line"><a name="l00126"></a><span class="lineno">  126</span>&#160;}</div>
<div class="ttc" id="aclasspcl_1_1filters_1_1_convolution_html_a5e21016ab2b2fe7ed370834a162c7b40"><div class="ttname"><a href="classpcl_1_1filters_1_1_convolution.html#a5e21016ab2b2fe7ed370834a162c7b40">pcl::filters::Convolution::convolve_cols_duplicate</a></div><div class="ttdeci">void convolve_cols_duplicate(PointCloudOut &amp;output)</div><div class="ttdoc">convolve cols and duplicate borders</div><div class="ttdef"><b>Definition:</b> convolution.hpp:583</div></div>
<div class="ttc" id="aclasspcl_1_1filters_1_1_convolution_html_a90a14cfd2090f0defaee6a0b261ef697"><div class="ttname"><a href="classpcl_1_1filters_1_1_convolution.html#a90a14cfd2090f0defaee6a0b261ef697">pcl::filters::Convolution::convolve_cols</a></div><div class="ttdeci">void convolve_cols(PointCloudOut &amp;output)</div><div class="ttdoc">convolve cols and ignore borders</div><div class="ttdef"><b>Definition:</b> convolution.hpp:539</div></div>
<div class="ttc" id="aclasspcl_1_1filters_1_1_convolution_html_a99fecb92edac3c7a6f7d3a1c03c5223f"><div class="ttname"><a href="classpcl_1_1filters_1_1_convolution.html#a99fecb92edac3c7a6f7d3a1c03c5223f">pcl::filters::Convolution::convolve_cols_mirror</a></div><div class="ttdeci">void convolve_cols_mirror(PointCloudOut &amp;output)</div><div class="ttdoc">convolve cols and mirror borders</div><div class="ttdef"><b>Definition:</b> convolution.hpp:628</div></div>
<div class="ttc" id="aclasspcl_1_1filters_1_1_convolution_html_ac6ea4184e4763e573694d01cdf047592"><div class="ttname"><a href="classpcl_1_1filters_1_1_convolution.html#ac6ea4184e4763e573694d01cdf047592">pcl::filters::Convolution::initCompute</a></div><div class="ttdeci">void initCompute(PointCloudOut &amp;output)</div><div class="ttdef"><b>Definition:</b> convolution.hpp:58</div></div>
<div class="ttc" id="aclasspcl_1_1filters_1_1_convolution_html_ad5f85f1f47f680e5c1bce9347c25d3b9"><div class="ttname"><a href="classpcl_1_1filters_1_1_convolution.html#ad5f85f1f47f680e5c1bce9347c25d3b9">pcl::filters::Convolution::borders_policy_</a></div><div class="ttdeci">int borders_policy_</div><div class="ttdoc">Border policy</div><div class="ttdef"><b>Definition:</b> convolution.h:213</div></div>
</div><!-- fragment -->
</div>
</div>
<a id="a45c30c6f115a94ad6a26e57b5e21553b"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a45c30c6f115a94ad6a26e57b5e21553b">&#9670;&nbsp;</a></span>convolveOneColDense()</h2>

<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;typename PointIn , typename PointOut &gt; </div>
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">PointOut <a class="el" href="classpcl_1_1filters_1_1_convolution.html">pcl::filters::Convolution</a>&lt; PointIn, PointOut &gt;::convolveOneColDense </td>
          <td>(</td>
          <td class="paramtype">int&#160;</td>
          <td class="paramname"><em>i</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int&#160;</td>
          <td class="paramname"><em>j</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span><span class="mlabel">private</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">
<dl class="section return"><dt>返回</dt><dd>the result of convolution of point at (\ai, \aj) </dd></dl>
<dl class="section note"><dt>注解</dt><dd>no test on finity is performed </dd></dl>
<div class="fragment"><div class="line"><a name="l00178"></a><span class="lineno">  178</span>&#160;{</div>
<div class="line"><a name="l00179"></a><span class="lineno">  179</span>&#160;  <span class="keyword">using namespace </span>pcl::common;</div>
<div class="line"><a name="l00180"></a><span class="lineno">  180</span>&#160;  PointOut result;</div>
<div class="line"><a name="l00181"></a><span class="lineno">  181</span>&#160;  <span class="keywordflow">for</span> (<span class="keywordtype">int</span> k = <a class="code" href="classpcl_1_1filters_1_1_convolution.html#a283a901ea233fddc93f014dfe993c405">kernel_width_</a>, l = j - <a class="code" href="classpcl_1_1filters_1_1_convolution.html#a56638bab177842b1927fd11a767ea487">half_width_</a>; k &gt; -1; --k, ++l)</div>
<div class="line"><a name="l00182"></a><span class="lineno">  182</span>&#160;    result+= (*<a class="code" href="classpcl_1_1filters_1_1_convolution.html#a6c55d5f4243573f3adcadf9a1de6e9c2">input_</a>) (i,l) * <a class="code" href="classpcl_1_1filters_1_1_convolution.html#af07d32b376a199ce9ecd43a13aa426af">kernel_</a>[k];</div>
<div class="line"><a name="l00183"></a><span class="lineno">  183</span>&#160;  <span class="keywordflow">return</span> (result);</div>
<div class="line"><a name="l00184"></a><span class="lineno">  184</span>&#160;}</div>
<div class="ttc" id="aclasspcl_1_1filters_1_1_convolution_html_a283a901ea233fddc93f014dfe993c405"><div class="ttname"><a href="classpcl_1_1filters_1_1_convolution.html#a283a901ea233fddc93f014dfe993c405">pcl::filters::Convolution::kernel_width_</a></div><div class="ttdeci">int kernel_width_</div><div class="ttdoc">kernel size - 1</div><div class="ttdef"><b>Definition:</b> convolution.h:223</div></div>
<div class="ttc" id="aclasspcl_1_1filters_1_1_convolution_html_a56638bab177842b1927fd11a767ea487"><div class="ttname"><a href="classpcl_1_1filters_1_1_convolution.html#a56638bab177842b1927fd11a767ea487">pcl::filters::Convolution::half_width_</a></div><div class="ttdeci">int half_width_</div><div class="ttdoc">half kernel size</div><div class="ttdef"><b>Definition:</b> convolution.h:221</div></div>
<div class="ttc" id="aclasspcl_1_1filters_1_1_convolution_html_a6c55d5f4243573f3adcadf9a1de6e9c2"><div class="ttname"><a href="classpcl_1_1filters_1_1_convolution.html#a6c55d5f4243573f3adcadf9a1de6e9c2">pcl::filters::Convolution::input_</a></div><div class="ttdeci">PointCloudInConstPtr input_</div><div class="ttdoc">Pointer to the input cloud</div><div class="ttdef"><b>Definition:</b> convolution.h:217</div></div>
<div class="ttc" id="aclasspcl_1_1filters_1_1_convolution_html_af07d32b376a199ce9ecd43a13aa426af"><div class="ttname"><a href="classpcl_1_1filters_1_1_convolution.html#af07d32b376a199ce9ecd43a13aa426af">pcl::filters::Convolution::kernel_</a></div><div class="ttdeci">Eigen::ArrayXf kernel_</div><div class="ttdoc">convolution kernel</div><div class="ttdef"><b>Definition:</b> convolution.h:219</div></div>
</div><!-- fragment -->
</div>
</div>
<a id="a60fa76f17ef128a0ed99be9d874d8aa6"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a60fa76f17ef128a0ed99be9d874d8aa6">&#9670;&nbsp;</a></span>convolveOneColNonDense()</h2>

<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;typename PointIn , typename PointOut &gt; </div>
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">PointOut <a class="el" href="classpcl_1_1filters_1_1_convolution.html">pcl::filters::Convolution</a>&lt; PointIn, PointOut &gt;::convolveOneColNonDense </td>
          <td>(</td>
          <td class="paramtype">int&#160;</td>
          <td class="paramname"><em>i</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int&#160;</td>
          <td class="paramname"><em>j</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span><span class="mlabel">private</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">
<dl class="section return"><dt>返回</dt><dd>the result of convolution of point at (\ai, \aj) </dd></dl>
<dl class="section note"><dt>注解</dt><dd>only finite points within <em>distance_threshold_</em> are accounted </dd></dl>
<div class="fragment"><div class="line"><a name="l00214"></a><span class="lineno">  214</span>&#160;{</div>
<div class="line"><a name="l00215"></a><span class="lineno">  215</span>&#160;  <span class="keyword">using namespace </span>pcl::common;</div>
<div class="line"><a name="l00216"></a><span class="lineno">  216</span>&#160;  PointOut result;</div>
<div class="line"><a name="l00217"></a><span class="lineno">  217</span>&#160;  <span class="keywordtype">float</span> weight = 0;</div>
<div class="line"><a name="l00218"></a><span class="lineno">  218</span>&#160;  <span class="keywordflow">for</span> (<span class="keywordtype">int</span> k = <a class="code" href="classpcl_1_1filters_1_1_convolution.html#a283a901ea233fddc93f014dfe993c405">kernel_width_</a>, l = j - <a class="code" href="classpcl_1_1filters_1_1_convolution.html#a56638bab177842b1927fd11a767ea487">half_width_</a>; k &gt; -1; --k, ++l)</div>
<div class="line"><a name="l00219"></a><span class="lineno">  219</span>&#160;  {</div>
<div class="line"><a name="l00220"></a><span class="lineno">  220</span>&#160;    <span class="keywordflow">if</span> (!isFinite ((*<a class="code" href="classpcl_1_1filters_1_1_convolution.html#a6c55d5f4243573f3adcadf9a1de6e9c2">input_</a>) (i,l)))</div>
<div class="line"><a name="l00221"></a><span class="lineno">  221</span>&#160;      <span class="keywordflow">continue</span>;</div>
<div class="line"><a name="l00222"></a><span class="lineno">  222</span>&#160;    <span class="keywordflow">if</span> (pcl::squaredEuclideanDistance ((*<a class="code" href="classpcl_1_1filters_1_1_convolution.html#a6c55d5f4243573f3adcadf9a1de6e9c2">input_</a>) (i,j), (*<a class="code" href="classpcl_1_1filters_1_1_convolution.html#a6c55d5f4243573f3adcadf9a1de6e9c2">input_</a>) (i,l)) &lt; <a class="code" href="classpcl_1_1filters_1_1_convolution.html#a03efcc1b971c1aed960a2f599c879229">distance_threshold_</a>)</div>
<div class="line"><a name="l00223"></a><span class="lineno">  223</span>&#160;    {</div>
<div class="line"><a name="l00224"></a><span class="lineno">  224</span>&#160;      result+= (*input_) (i,l) * <a class="code" href="classpcl_1_1filters_1_1_convolution.html#af07d32b376a199ce9ecd43a13aa426af">kernel_</a>[k];</div>
<div class="line"><a name="l00225"></a><span class="lineno">  225</span>&#160;      weight += <a class="code" href="classpcl_1_1filters_1_1_convolution.html#af07d32b376a199ce9ecd43a13aa426af">kernel_</a>[k];</div>
<div class="line"><a name="l00226"></a><span class="lineno">  226</span>&#160;    }</div>
<div class="line"><a name="l00227"></a><span class="lineno">  227</span>&#160;  }</div>
<div class="line"><a name="l00228"></a><span class="lineno">  228</span>&#160;  <span class="keywordflow">if</span> (weight == 0)</div>
<div class="line"><a name="l00229"></a><span class="lineno">  229</span>&#160;    result.x = result.y = result.z = std::numeric_limits&lt;float&gt;::quiet_NaN ();</div>
<div class="line"><a name="l00230"></a><span class="lineno">  230</span>&#160;  <span class="keywordflow">else</span></div>
<div class="line"><a name="l00231"></a><span class="lineno">  231</span>&#160;  {</div>
<div class="line"><a name="l00232"></a><span class="lineno">  232</span>&#160;    weight = 1.f/weight;</div>
<div class="line"><a name="l00233"></a><span class="lineno">  233</span>&#160;    result*= weight;</div>
<div class="line"><a name="l00234"></a><span class="lineno">  234</span>&#160;  }</div>
<div class="line"><a name="l00235"></a><span class="lineno">  235</span>&#160;  <span class="keywordflow">return</span> (result);</div>
<div class="line"><a name="l00236"></a><span class="lineno">  236</span>&#160;}</div>
<div class="ttc" id="aclasspcl_1_1filters_1_1_convolution_html_a03efcc1b971c1aed960a2f599c879229"><div class="ttname"><a href="classpcl_1_1filters_1_1_convolution.html#a03efcc1b971c1aed960a2f599c879229">pcl::filters::Convolution::distance_threshold_</a></div><div class="ttdeci">float distance_threshold_</div><div class="ttdoc">Threshold distance between adjacent points</div><div class="ttdef"><b>Definition:</b> convolution.h:215</div></div>
</div><!-- fragment -->
</div>
</div>
<a id="a4b2e50f307ab6760e6593f7ac2ba7e0a"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a4b2e50f307ab6760e6593f7ac2ba7e0a">&#9670;&nbsp;</a></span>convolveOneRowDense()</h2>

<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;typename PointIn , typename PointOut &gt; </div>
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">PointOut <a class="el" href="classpcl_1_1filters_1_1_convolution.html">pcl::filters::Convolution</a>&lt; PointIn, PointOut &gt;::convolveOneRowDense </td>
          <td>(</td>
          <td class="paramtype">int&#160;</td>
          <td class="paramname"><em>i</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int&#160;</td>
          <td class="paramname"><em>j</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span><span class="mlabel">private</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">
<dl class="section return"><dt>返回</dt><dd>the result of convolution of point at (\ai, \aj) </dd></dl>
<dl class="section note"><dt>注解</dt><dd>no test on finity is performed </dd></dl>
<div class="fragment"><div class="line"><a name="l00168"></a><span class="lineno">  168</span>&#160;{</div>
<div class="line"><a name="l00169"></a><span class="lineno">  169</span>&#160;  <span class="keyword">using namespace </span>pcl::common;</div>
<div class="line"><a name="l00170"></a><span class="lineno">  170</span>&#160;  PointOut result;</div>
<div class="line"><a name="l00171"></a><span class="lineno">  171</span>&#160;  <span class="keywordflow">for</span> (<span class="keywordtype">int</span> k = <a class="code" href="classpcl_1_1filters_1_1_convolution.html#a283a901ea233fddc93f014dfe993c405">kernel_width_</a>, l = i - <a class="code" href="classpcl_1_1filters_1_1_convolution.html#a56638bab177842b1927fd11a767ea487">half_width_</a>; k &gt; -1; --k, ++l)</div>
<div class="line"><a name="l00172"></a><span class="lineno">  172</span>&#160;    result+= (*<a class="code" href="classpcl_1_1filters_1_1_convolution.html#a6c55d5f4243573f3adcadf9a1de6e9c2">input_</a>) (l,j) * <a class="code" href="classpcl_1_1filters_1_1_convolution.html#af07d32b376a199ce9ecd43a13aa426af">kernel_</a>[k];</div>
<div class="line"><a name="l00173"></a><span class="lineno">  173</span>&#160;  <span class="keywordflow">return</span> (result);</div>
<div class="line"><a name="l00174"></a><span class="lineno">  174</span>&#160;}</div>
</div><!-- fragment -->
</div>
</div>
<a id="a1fda861391f0b6ddfdacd9decdd43d55"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a1fda861391f0b6ddfdacd9decdd43d55">&#9670;&nbsp;</a></span>convolveOneRowNonDense()</h2>

<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;typename PointIn , typename PointOut &gt; </div>
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">PointOut <a class="el" href="classpcl_1_1filters_1_1_convolution.html">pcl::filters::Convolution</a>&lt; PointIn, PointOut &gt;::convolveOneRowNonDense </td>
          <td>(</td>
          <td class="paramtype">int&#160;</td>
          <td class="paramname"><em>i</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int&#160;</td>
          <td class="paramname"><em>j</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span><span class="mlabel">private</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">
<dl class="section return"><dt>返回</dt><dd>the result of convolution of point at (\ai, \aj) </dd></dl>
<dl class="section note"><dt>注解</dt><dd>only finite points within <em>distance_threshold_</em> are accounted </dd></dl>
<div class="fragment"><div class="line"><a name="l00188"></a><span class="lineno">  188</span>&#160;{</div>
<div class="line"><a name="l00189"></a><span class="lineno">  189</span>&#160;  <span class="keyword">using namespace </span>pcl::common;</div>
<div class="line"><a name="l00190"></a><span class="lineno">  190</span>&#160;  PointOut result;</div>
<div class="line"><a name="l00191"></a><span class="lineno">  191</span>&#160;  <span class="keywordtype">float</span> weight = 0;</div>
<div class="line"><a name="l00192"></a><span class="lineno">  192</span>&#160;  <span class="keywordflow">for</span> (<span class="keywordtype">int</span> k = <a class="code" href="classpcl_1_1filters_1_1_convolution.html#a283a901ea233fddc93f014dfe993c405">kernel_width_</a>, l = i - <a class="code" href="classpcl_1_1filters_1_1_convolution.html#a56638bab177842b1927fd11a767ea487">half_width_</a>; k &gt; -1; --k, ++l)</div>
<div class="line"><a name="l00193"></a><span class="lineno">  193</span>&#160;  {</div>
<div class="line"><a name="l00194"></a><span class="lineno">  194</span>&#160;    <span class="keywordflow">if</span> (!isFinite ((*<a class="code" href="classpcl_1_1filters_1_1_convolution.html#a6c55d5f4243573f3adcadf9a1de6e9c2">input_</a>) (l,j)))</div>
<div class="line"><a name="l00195"></a><span class="lineno">  195</span>&#160;      <span class="keywordflow">continue</span>;</div>
<div class="line"><a name="l00196"></a><span class="lineno">  196</span>&#160;    <span class="keywordflow">if</span> (pcl::squaredEuclideanDistance ((*<a class="code" href="classpcl_1_1filters_1_1_convolution.html#a6c55d5f4243573f3adcadf9a1de6e9c2">input_</a>) (i,j), (*<a class="code" href="classpcl_1_1filters_1_1_convolution.html#a6c55d5f4243573f3adcadf9a1de6e9c2">input_</a>) (l,j)) &lt; <a class="code" href="classpcl_1_1filters_1_1_convolution.html#a03efcc1b971c1aed960a2f599c879229">distance_threshold_</a>)</div>
<div class="line"><a name="l00197"></a><span class="lineno">  197</span>&#160;    {</div>
<div class="line"><a name="l00198"></a><span class="lineno">  198</span>&#160;      result+= (*input_) (l,j) * <a class="code" href="classpcl_1_1filters_1_1_convolution.html#af07d32b376a199ce9ecd43a13aa426af">kernel_</a>[k];</div>
<div class="line"><a name="l00199"></a><span class="lineno">  199</span>&#160;      weight += <a class="code" href="classpcl_1_1filters_1_1_convolution.html#af07d32b376a199ce9ecd43a13aa426af">kernel_</a>[k];</div>
<div class="line"><a name="l00200"></a><span class="lineno">  200</span>&#160;    }</div>
<div class="line"><a name="l00201"></a><span class="lineno">  201</span>&#160;  }</div>
<div class="line"><a name="l00202"></a><span class="lineno">  202</span>&#160;  <span class="keywordflow">if</span> (weight == 0)</div>
<div class="line"><a name="l00203"></a><span class="lineno">  203</span>&#160;    result.x = result.y = result.z = std::numeric_limits&lt;float&gt;::quiet_NaN ();</div>
<div class="line"><a name="l00204"></a><span class="lineno">  204</span>&#160;  <span class="keywordflow">else</span></div>
<div class="line"><a name="l00205"></a><span class="lineno">  205</span>&#160;  {</div>
<div class="line"><a name="l00206"></a><span class="lineno">  206</span>&#160;    weight = 1.f/weight;</div>
<div class="line"><a name="l00207"></a><span class="lineno">  207</span>&#160;    result*= weight;</div>
<div class="line"><a name="l00208"></a><span class="lineno">  208</span>&#160;  }</div>
<div class="line"><a name="l00209"></a><span class="lineno">  209</span>&#160;  <span class="keywordflow">return</span> (result);</div>
<div class="line"><a name="l00210"></a><span class="lineno">  210</span>&#160;}</div>
</div><!-- fragment -->
</div>
</div>
<a id="a8700c664ebc38288155d4c872c117c81"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a8700c664ebc38288155d4c872c117c81">&#9670;&nbsp;</a></span>convolveRows()</h2>

<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;typename PointIn , typename PointOut &gt; </div>
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">void <a class="el" href="classpcl_1_1filters_1_1_convolution.html">pcl::filters::Convolution</a>&lt; PointIn, PointOut &gt;::convolveRows </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="classpcl_1_1_point_cloud.html">PointCloudOut</a> &amp;&#160;</td>
          <td class="paramname"><em>output</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">
<p>Convolve a float image rows by a given kernel. </p><dl class="params"><dt>参数</dt><dd>
  <table class="params">
    <tr><td class="paramdir">[out]</td><td class="paramname">output</td><td>the convolved cloud </td></tr>
  </table>
  </dd>
</dl>
<dl class="section note"><dt>注解</dt><dd>if output doesn't fit in input i.e. output.rows () &lt; input.rows () or output.cols () &lt; input.cols () then output is resized to input sizes. </dd></dl>
<div class="fragment"><div class="line"><a name="l00090"></a><span class="lineno">   90</span>&#160;{</div>
<div class="line"><a name="l00091"></a><span class="lineno">   91</span>&#160;  <span class="keywordflow">try</span></div>
<div class="line"><a name="l00092"></a><span class="lineno">   92</span>&#160;  {</div>
<div class="line"><a name="l00093"></a><span class="lineno">   93</span>&#160;    <a class="code" href="classpcl_1_1filters_1_1_convolution.html#ac6ea4184e4763e573694d01cdf047592">initCompute</a> (output);</div>
<div class="line"><a name="l00094"></a><span class="lineno">   94</span>&#160;    <span class="keywordflow">switch</span> (<a class="code" href="classpcl_1_1filters_1_1_convolution.html#ad5f85f1f47f680e5c1bce9347c25d3b9">borders_policy_</a>)</div>
<div class="line"><a name="l00095"></a><span class="lineno">   95</span>&#160;    {</div>
<div class="line"><a name="l00096"></a><span class="lineno">   96</span>&#160;      <span class="keywordflow">case</span> BORDERS_POLICY_MIRROR : <a class="code" href="classpcl_1_1filters_1_1_convolution.html#a2ef019b0be2516b7935827732936bc96">convolve_rows_mirror</a> (output);</div>
<div class="line"><a name="l00097"></a><span class="lineno">   97</span>&#160;      <span class="keywordflow">case</span> BORDERS_POLICY_DUPLICATE : <a class="code" href="classpcl_1_1filters_1_1_convolution.html#a800c77925077f233061f5c409cb9cf21">convolve_rows_duplicate</a> (output);</div>
<div class="line"><a name="l00098"></a><span class="lineno">   98</span>&#160;      <span class="keywordflow">case</span> BORDERS_POLICY_IGNORE : <a class="code" href="classpcl_1_1filters_1_1_convolution.html#aa0d05344455a5a9595515b02d5669cd9">convolve_rows</a> (output);</div>
<div class="line"><a name="l00099"></a><span class="lineno">   99</span>&#160;    }</div>
<div class="line"><a name="l00100"></a><span class="lineno">  100</span>&#160;  }</div>
<div class="line"><a name="l00101"></a><span class="lineno">  101</span>&#160;  <span class="keywordflow">catch</span> (InitFailedException&amp; e)</div>
<div class="line"><a name="l00102"></a><span class="lineno">  102</span>&#160;  {</div>
<div class="line"><a name="l00103"></a><span class="lineno">  103</span>&#160;    PCL_THROW_EXCEPTION (InitFailedException,</div>
<div class="line"><a name="l00104"></a><span class="lineno">  104</span>&#160;                         <span class="stringliteral">&quot;[pcl::filters::Convolution::convolveRows] init failed &quot;</span> &lt;&lt; e.what ());</div>
<div class="line"><a name="l00105"></a><span class="lineno">  105</span>&#160;  }</div>
<div class="line"><a name="l00106"></a><span class="lineno">  106</span>&#160;}</div>
<div class="ttc" id="aclasspcl_1_1filters_1_1_convolution_html_a2ef019b0be2516b7935827732936bc96"><div class="ttname"><a href="classpcl_1_1filters_1_1_convolution.html#a2ef019b0be2516b7935827732936bc96">pcl::filters::Convolution::convolve_rows_mirror</a></div><div class="ttdeci">void convolve_rows_mirror(PointCloudOut &amp;output)</div><div class="ttdoc">convolve rows and mirror borders</div><div class="ttdef"><b>Definition:</b> convolution.hpp:494</div></div>
<div class="ttc" id="aclasspcl_1_1filters_1_1_convolution_html_a800c77925077f233061f5c409cb9cf21"><div class="ttname"><a href="classpcl_1_1filters_1_1_convolution.html#a800c77925077f233061f5c409cb9cf21">pcl::filters::Convolution::convolve_rows_duplicate</a></div><div class="ttdeci">void convolve_rows_duplicate(PointCloudOut &amp;output)</div><div class="ttdoc">convolve rows and duplicate borders</div><div class="ttdef"><b>Definition:</b> convolution.hpp:449</div></div>
<div class="ttc" id="aclasspcl_1_1filters_1_1_convolution_html_aa0d05344455a5a9595515b02d5669cd9"><div class="ttname"><a href="classpcl_1_1filters_1_1_convolution.html#aa0d05344455a5a9595515b02d5669cd9">pcl::filters::Convolution::convolve_rows</a></div><div class="ttdeci">void convolve_rows(PointCloudOut &amp;output)</div><div class="ttdoc">convolve rows and ignore borders</div><div class="ttdef"><b>Definition:</b> convolution.hpp:405</div></div>
</div><!-- fragment -->
</div>
</div>
<a id="a00cd1ceb0545dd8468fe0e6a37531180"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a00cd1ceb0545dd8468fe0e6a37531180">&#9670;&nbsp;</a></span>getDistanceThreshold()</h2>

<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;typename PointIn , typename PointOut &gt; </div>
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">const float&amp; <a class="el" href="classpcl_1_1filters_1_1_convolution.html">pcl::filters::Convolution</a>&lt; PointIn, PointOut &gt;::getDistanceThreshold </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td> const</td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">
<dl class="section return"><dt>返回</dt><dd>the distance threshold </dd></dl>
<div class="fragment"><div class="line"><a name="l00127"></a><span class="lineno">  127</span>&#160;{ <span class="keywordflow">return</span> (<a class="code" href="classpcl_1_1filters_1_1_convolution.html#a03efcc1b971c1aed960a2f599c879229">distance_threshold_</a>); }</div>
</div><!-- fragment -->
</div>
</div>
<a id="ac6ea4184e4763e573694d01cdf047592"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ac6ea4184e4763e573694d01cdf047592">&#9670;&nbsp;</a></span>initCompute()</h2>

<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;typename PointIn , typename PointOut &gt; </div>
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">void <a class="el" href="classpcl_1_1filters_1_1_convolution.html">pcl::filters::Convolution</a>&lt; PointIn, PointOut &gt;::initCompute </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="classpcl_1_1_point_cloud.html">PointCloudOut</a> &amp;&#160;</td>
          <td class="paramname"><em>output</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">protected</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">
<p>init compute is an internal method called before computation </p><dl class="params"><dt>参数</dt><dd>
  <table class="params">
    <tr><td class="paramdir">[in]</td><td class="paramname">output</td><td></td></tr>
  </table>
  </dd>
</dl>
<dl class="exception"><dt>异常</dt><dd>
  <table class="exception">
    <tr><td class="paramname"><a class="el" href="classpcl_1_1_init_failed_exception.html" title="An exception thrown when init can not be performed should be used in all the PCLBase class inheritant...">pcl::InitFailedException</a></td><td></td></tr>
  </table>
  </dd>
</dl>
<div class="fragment"><div class="line"><a name="l00059"></a><span class="lineno">   59</span>&#160;{</div>
<div class="line"><a name="l00060"></a><span class="lineno">   60</span>&#160;  <span class="keywordflow">if</span> (<a class="code" href="classpcl_1_1filters_1_1_convolution.html#ad5f85f1f47f680e5c1bce9347c25d3b9">borders_policy_</a> != BORDERS_POLICY_IGNORE &amp;&amp;</div>
<div class="line"><a name="l00061"></a><span class="lineno">   61</span>&#160;      <a class="code" href="classpcl_1_1filters_1_1_convolution.html#ad5f85f1f47f680e5c1bce9347c25d3b9">borders_policy_</a> != BORDERS_POLICY_MIRROR &amp;&amp;</div>
<div class="line"><a name="l00062"></a><span class="lineno">   62</span>&#160;      <a class="code" href="classpcl_1_1filters_1_1_convolution.html#ad5f85f1f47f680e5c1bce9347c25d3b9">borders_policy_</a> != BORDERS_POLICY_DUPLICATE)</div>
<div class="line"><a name="l00063"></a><span class="lineno">   63</span>&#160;    PCL_THROW_EXCEPTION (InitFailedException,</div>
<div class="line"><a name="l00064"></a><span class="lineno">   64</span>&#160;                         <span class="stringliteral">&quot;[pcl::filters::Convolution::initCompute] unknown borders policy.&quot;</span>);</div>
<div class="line"><a name="l00065"></a><span class="lineno">   65</span>&#160; </div>
<div class="line"><a name="l00066"></a><span class="lineno">   66</span>&#160;  <span class="keywordflow">if</span>(<a class="code" href="classpcl_1_1filters_1_1_convolution.html#af07d32b376a199ce9ecd43a13aa426af">kernel_</a>.size () % 2 == 0)</div>
<div class="line"><a name="l00067"></a><span class="lineno">   67</span>&#160;    PCL_THROW_EXCEPTION (InitFailedException,</div>
<div class="line"><a name="l00068"></a><span class="lineno">   68</span>&#160;                         <span class="stringliteral">&quot;[pcl::filters::Convolution::initCompute] convolving element width must be odd.&quot;</span>);</div>
<div class="line"><a name="l00069"></a><span class="lineno">   69</span>&#160; </div>
<div class="line"><a name="l00070"></a><span class="lineno">   70</span>&#160;  <span class="keywordflow">if</span> (<a class="code" href="classpcl_1_1filters_1_1_convolution.html#a03efcc1b971c1aed960a2f599c879229">distance_threshold_</a> != std::numeric_limits&lt;float&gt;::infinity ())</div>
<div class="line"><a name="l00071"></a><span class="lineno">   71</span>&#160;    <a class="code" href="classpcl_1_1filters_1_1_convolution.html#a03efcc1b971c1aed960a2f599c879229">distance_threshold_</a> *= <span class="keyword">static_cast&lt;</span><span class="keywordtype">float</span><span class="keyword">&gt;</span> (<a class="code" href="classpcl_1_1filters_1_1_convolution.html#af07d32b376a199ce9ecd43a13aa426af">kernel_</a>.size () % 2) * <a class="code" href="classpcl_1_1filters_1_1_convolution.html#a03efcc1b971c1aed960a2f599c879229">distance_threshold_</a>;</div>
<div class="line"><a name="l00072"></a><span class="lineno">   72</span>&#160; </div>
<div class="line"><a name="l00073"></a><span class="lineno">   73</span>&#160;  <a class="code" href="classpcl_1_1filters_1_1_convolution.html#a56638bab177842b1927fd11a767ea487">half_width_</a> = <span class="keyword">static_cast&lt;</span><span class="keywordtype">int</span><span class="keyword">&gt;</span> (<a class="code" href="classpcl_1_1filters_1_1_convolution.html#af07d32b376a199ce9ecd43a13aa426af">kernel_</a>.size ()) / 2;</div>
<div class="line"><a name="l00074"></a><span class="lineno">   74</span>&#160;  <a class="code" href="classpcl_1_1filters_1_1_convolution.html#a283a901ea233fddc93f014dfe993c405">kernel_width_</a> = <span class="keyword">static_cast&lt;</span><span class="keywordtype">int</span><span class="keyword">&gt;</span> (<a class="code" href="classpcl_1_1filters_1_1_convolution.html#af07d32b376a199ce9ecd43a13aa426af">kernel_</a>.size () - 1);</div>
<div class="line"><a name="l00075"></a><span class="lineno">   75</span>&#160; </div>
<div class="line"><a name="l00076"></a><span class="lineno">   76</span>&#160;  <span class="keywordflow">if</span> (&amp;(*<a class="code" href="classpcl_1_1filters_1_1_convolution.html#a6c55d5f4243573f3adcadf9a1de6e9c2">input_</a>) != &amp;output)</div>
<div class="line"><a name="l00077"></a><span class="lineno">   77</span>&#160;  {</div>
<div class="line"><a name="l00078"></a><span class="lineno">   78</span>&#160;    <span class="keywordflow">if</span> (output.height != <a class="code" href="classpcl_1_1filters_1_1_convolution.html#a6c55d5f4243573f3adcadf9a1de6e9c2">input_</a>-&gt;height || output.width != <a class="code" href="classpcl_1_1filters_1_1_convolution.html#a6c55d5f4243573f3adcadf9a1de6e9c2">input_</a>-&gt;width)</div>
<div class="line"><a name="l00079"></a><span class="lineno">   79</span>&#160;    {</div>
<div class="line"><a name="l00080"></a><span class="lineno">   80</span>&#160;      output.resize (<a class="code" href="classpcl_1_1filters_1_1_convolution.html#a6c55d5f4243573f3adcadf9a1de6e9c2">input_</a>-&gt;width * <a class="code" href="classpcl_1_1filters_1_1_convolution.html#a6c55d5f4243573f3adcadf9a1de6e9c2">input_</a>-&gt;height);</div>
<div class="line"><a name="l00081"></a><span class="lineno">   81</span>&#160;      output.width = <a class="code" href="classpcl_1_1filters_1_1_convolution.html#a6c55d5f4243573f3adcadf9a1de6e9c2">input_</a>-&gt;width;</div>
<div class="line"><a name="l00082"></a><span class="lineno">   82</span>&#160;      output.height = <a class="code" href="classpcl_1_1filters_1_1_convolution.html#a6c55d5f4243573f3adcadf9a1de6e9c2">input_</a>-&gt;height;</div>
<div class="line"><a name="l00083"></a><span class="lineno">   83</span>&#160;    }</div>
<div class="line"><a name="l00084"></a><span class="lineno">   84</span>&#160;  }</div>
<div class="line"><a name="l00085"></a><span class="lineno">   85</span>&#160;  output.is_dense = <a class="code" href="classpcl_1_1filters_1_1_convolution.html#a6c55d5f4243573f3adcadf9a1de6e9c2">input_</a>-&gt;is_dense;</div>
<div class="line"><a name="l00086"></a><span class="lineno">   86</span>&#160;}</div>
</div><!-- fragment -->
</div>
</div>
<a id="aac0496f56b859fb46e39a52bf14ed853"></a>
<h2 class="memtitle"><span class="permalink"><a href="#aac0496f56b859fb46e39a52bf14ed853">&#9670;&nbsp;</a></span>setDistanceThreshold()</h2>

<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;typename PointIn , typename PointOut &gt; </div>
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">void <a class="el" href="classpcl_1_1filters_1_1_convolution.html">pcl::filters::Convolution</a>&lt; PointIn, PointOut &gt;::setDistanceThreshold </td>
          <td>(</td>
          <td class="paramtype">const float &amp;&#160;</td>
          <td class="paramname"><em>threshold</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">
<dl class="section remark"><dt>备注</dt><dd>this is critical so please read it carefully. In 3D the next point in (u,v) coordinate can be really far so a distance threshold is used to keep us from ghost points. The value you set here is strongly related to the sensor. A good value for kinect data is 0.001. Default is std::numeric&lt;float&gt;::infinity () </dd></dl>
<dl class="params"><dt>参数</dt><dd>
  <table class="params">
    <tr><td class="paramdir">[in]</td><td class="paramname">threshold</td><td>maximum allowed distance between 2 juxtaposed points </td></tr>
  </table>
  </dd>
</dl>
<div class="fragment"><div class="line"><a name="l00124"></a><span class="lineno">  124</span>&#160;{ <a class="code" href="classpcl_1_1filters_1_1_convolution.html#a03efcc1b971c1aed960a2f599c879229">distance_threshold_</a> = threshold; }</div>
</div><!-- fragment -->
</div>
</div>
<a id="a16fbbdf38948fed054d2b8b6514ef42d"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a16fbbdf38948fed054d2b8b6514ef42d">&#9670;&nbsp;</a></span>setInputCloud()</h2>

<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;typename PointIn , typename PointOut &gt; </div>
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">void <a class="el" href="classpcl_1_1filters_1_1_convolution.html">pcl::filters::Convolution</a>&lt; PointIn, PointOut &gt;::setInputCloud </td>
          <td>(</td>
          <td class="paramtype">const PointCloudInConstPtr &amp;&#160;</td>
          <td class="paramname"><em>cloud</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Provide a pointer to the input dataset </p>
<dl class="params"><dt>参数</dt><dd>
  <table class="params">
    <tr><td class="paramname">cloud</td><td>the const boost shared pointer to a <a class="el" href="classpcl_1_1_point_cloud.html" title="PointCloud represents the base class in PCL for storing collections of 3D points.">PointCloud</a> message </td></tr>
  </table>
  </dd>
</dl>
<dl class="section remark"><dt>备注</dt><dd>Will perform a deep copy </dd></dl>
<div class="fragment"><div class="line"><a name="l00104"></a><span class="lineno">  104</span>&#160;{ <a class="code" href="classpcl_1_1filters_1_1_convolution.html#a6c55d5f4243573f3adcadf9a1de6e9c2">input_</a> = cloud; }</div>
</div><!-- fragment -->
</div>
</div>
<a id="acd355932b0334275e14ee26a248c15c4"></a>
<h2 class="memtitle"><span class="permalink"><a href="#acd355932b0334275e14ee26a248c15c4">&#9670;&nbsp;</a></span>setKernel()</h2>

<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;typename PointIn , typename PointOut &gt; </div>
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">void <a class="el" href="classpcl_1_1filters_1_1_convolution.html">pcl::filters::Convolution</a>&lt; PointIn, PointOut &gt;::setKernel </td>
          <td>(</td>
          <td class="paramtype">const Eigen::ArrayXf &amp;&#160;</td>
          <td class="paramname"><em>kernel</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">
<p>Set convolving kernel </p><dl class="params"><dt>参数</dt><dd>
  <table class="params">
    <tr><td class="paramdir">[in]</td><td class="paramname">kernel</td><td>convolving element </td></tr>
  </table>
  </dd>
</dl>
<div class="fragment"><div class="line"><a name="l00109"></a><span class="lineno">  109</span>&#160;{ <a class="code" href="classpcl_1_1filters_1_1_convolution.html#af07d32b376a199ce9ecd43a13aa426af">kernel_</a> = kernel; }</div>
</div><!-- fragment -->
</div>
</div>
<a id="a2836bdcb1bbc026eaa38d4378617de53"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a2836bdcb1bbc026eaa38d4378617de53">&#9670;&nbsp;</a></span>setNumberOfThreads()</h2>

<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;typename PointIn , typename PointOut &gt; </div>
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">void <a class="el" href="classpcl_1_1filters_1_1_convolution.html">pcl::filters::Convolution</a>&lt; PointIn, PointOut &gt;::setNumberOfThreads </td>
          <td>(</td>
          <td class="paramtype">unsigned int&#160;</td>
          <td class="paramname"><em>nr_threads</em> = <code>0</code></td><td>)</td>
          <td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Initialize the scheduler and set the number of threads to use. </p>
<dl class="params"><dt>参数</dt><dd>
  <table class="params">
    <tr><td class="paramname">nr_threads</td><td>the number of hardware threads to use (0 sets the value back to automatic) </td></tr>
  </table>
  </dd>
</dl>
<div class="fragment"><div class="line"><a name="l00132"></a><span class="lineno">  132</span>&#160;{ <a class="code" href="classpcl_1_1filters_1_1_convolution.html#adec8e2fca1a93fab4b558ee2fc9418bd">threads_</a> = nr_threads; }</div>
<div class="ttc" id="aclasspcl_1_1filters_1_1_convolution_html_adec8e2fca1a93fab4b558ee2fc9418bd"><div class="ttname"><a href="classpcl_1_1filters_1_1_convolution.html#adec8e2fca1a93fab4b558ee2fc9418bd">pcl::filters::Convolution::threads_</a></div><div class="ttdeci">unsigned int threads_</div><div class="ttdoc">The number of threads the scheduler should use.</div><div class="ttdef"><b>Definition:</b> convolution.h:226</div></div>
</div><!-- fragment -->
</div>
</div>
<hr/>该类的文档由以下文件生成:<ul>
<li>filters/include/pcl/filters/<a class="el" href="filters_2include_2pcl_2filters_2convolution_8h_source.html">convolution.h</a></li>
<li>filters/include/pcl/filters/impl/<a class="el" href="filters_2include_2pcl_2filters_2impl_2convolution_8hpp_source.html">convolution.hpp</a></li>
</ul>
</div><!-- contents -->
</div><!-- doc-content -->
<!-- start footer part -->
<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
  <ul>
    <li class="navelem"><b>pcl</b></li><li class="navelem"><b>filters</b></li><li class="navelem"><a class="el" href="classpcl_1_1filters_1_1_convolution.html">Convolution</a></li>
    <li class="footer">制作者 <a href="https://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.9.1 </li>
  </ul>
</div>
</body>
</html>
